package com.dwy2002.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dwy2002.common.Result;
import com.dwy2002.pojo.dto.product.CategoriesDTO;
import com.dwy2002.pojo.dto.product.CategoriesPageDTO;
import com.dwy2002.pojo.po.product.Categories;
import com.dwy2002.pojo.vo.product.CategoriesVO;

import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/02/17
 */
public interface ICategoriesService extends IService<Categories> {
    /**
     * 添加分类
     *
     * @param dto 商品分类信息接收类
     * @author 杜伟毅
     * @since 2025/3/1 0001 15:18
     */
    Result<Void> saveCategories(CategoriesDTO dto);

    /**
     * 修改分类
     *
     * @param dto 商品分类信息接收类
     * @author 杜伟毅
     * @since 2025/3/1 0001 16:10
     */
    Result<Void> updateCategories(CategoriesDTO dto);

    /**
     * 获取分类分页数据
     *
     * @param dto 分类分页前端接受类
     * @author 杜伟毅
     * @since 2025/3/1 0001 22:23
     */
    Result<Page<Categories>> getCategoriesPage(CategoriesPageDTO dto);

    /**
     * 删除分类
     *
     * @param id 分类id
     * @author 杜伟毅
     * @since 2025/3/2 0002 11:18
     */
    Result<Void> deleteCategories(String id);

    /**
     * 获取所有分类名字
     *
     * @author 杜伟毅
     * @since 2025/5/9 0009 13:35
     */
    Result<List<CategoriesVO>> getAllCategoriesName();

    /**
     * 获取分类详情
     *
     * @param id 分类id
     * @author 杜伟毅
     * @since 2025/5/10 0010 13:31
     */
    Result<Categories> getCategoriesDetails(String id);
}
